package pizarra;

import java.awt.Color;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import pizarra.vistas.VistaPizarra;

public class Pizarra implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private Color fondo;
	private Color[] colores;
	private List<Linea> lineas;
	private transient VistaPizarra vistaPizarra;

	public Pizarra() {
		lineas = new ArrayList<Linea>();
		fondo = new Color(255, 255, 255);
		colores = new Color[10];
		colores[0] = Color.black;
		for (int i = 1; i < 10; i++)
			colores[i] = new Color((int)(Math.random() * 255), (int)(Math.random() * 255), (int)(Math.random() * 255));
	}
	
	public Color getFondo() {
		return fondo;
	}

	public void setFondo(Color fondo) {
		this.fondo = fondo;
	}

	public void nuevaLinea(Linea linea) {
		lineas.add(linea);
	}

	public Linea getUltimaLinea(int pointer) {
		Linea l = null;
		for(Linea linea : this.lineas){
			if(linea.getPointer() == pointer)
				l = linea;
		}
		return l;
	}
	
	public void removeLinea(Linea linea) {
		lineas.remove(linea);
	}

	public void borrar() {
		lineas = new ArrayList<Linea>();
	}

	public VistaPizarra getVistaPizarra() {
		return vistaPizarra;
	}
	
	public void setVistaPizarra(VistaPizarra vistaPizarra) {
		this.vistaPizarra = vistaPizarra;
	}

	public List<Linea> getLineas() {
		return lineas;
	}
	
	public Color getColor(int puntero) {
		if (puntero >= 0 && puntero < 10)
			return colores[puntero];
		return Color.BLACK;
	}
	
	public void setColor(int puntero, Color color) {
		if (puntero >= 0 && puntero < 10)
			colores[puntero] = color;
	}

}
